

import java.util.Iterator;
//import org.apache.uima.analysis_component.CasAnnotator_ImplBase;
import org.apache.uima.analysis_component.JCasAnnotator_ImplBase;
import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
//import org.apache.uima.cas.CAS;
import org.apache.uima.cas.CASException;
import org.apache.uima.cas.Type;
import org.apache.uima.cas.text.AnnotationIndex;
import org.apache.uima.jcas.JCas;
//import org.apache.uima.jcas.tcas.Annotation;

import source.ts.*;
import target.ts.Mot;

public class typeMappingAnalysisEngineAnnotator extends JCasAnnotator_ImplBase {

//private Type Type1;
//private Type Type2;

	public void process(JCas aJCas) throws AnalysisEngineProcessException {
		
		//Récupération du type source soit Word
//		Type typeWord = aCas.getAnnotationType();
		Type typeWord = aJCas.getTypeSystem().getType("source.ts.Word");

		//Récupération de l'ensemble des annotations de ce type
		AnnotationIndex idxWord = (AnnotationIndex)aJCas.getAnnotationIndex(typeWord);
//		AnnotationIndex idxWord = (AnnotationIndex)aCas.getAnnotationIndex();

		//Création d'un itérateur sur cet index
		Iterator<Word> itWord = idxWord.iterator();
		
		//Tant qu'il y a des annotations de type Word
		while(itWord.hasNext())
		{
			Word w = itWord.next();
			//Récupération du début/fin de l'annotation courante
			int begin = w.getBegin();
			int end = w.getEnd();
			System.out.println("w "+w.getCoveredText()+ " begin " +begin + " end "+ end);
			//La création d'un CAS génère une exception devant être récupérée
			//try {
				//Création d'un nouveau mot
				//target.ts.Mot m = new target.ts.Mot(aCas.getJCas(),begin,end);
				Mot m = new Mot(aJCas);
				m.setBegin(begin);
				m.setEnd(end);
				m.addToIndexes();
			//} catch (Exception e) {
			//	e.printStackTrace();
			//}
		}
	}

}
